from django.views import View
# 导入返回响应
from SaaSDevelTool.data_return_response import create_response
# 导入错误信息装饰器
from SaaSDevelTool.data_return_response import error_message_detection
# 导入数据库连接
from SaaSDevelTool.data_mysql_data import db
# 导入创建功能包操作
from SaaSDevelTool.SaaSCenterOperateFunc import create_tenement_package_func

"""企业已开启功能包查看"""


class SaaSDataTenementPackageCreate(View):
    # @error_message_detection
    def post(self, request):
        # 获取企业编号
        tenement_id = request.POST.get("tenement_id")
        # 获取功能包编号
        package_id = request.POST.get("package_id")

        # 判断对应的企业编号
        if not tenement_id:
            return create_response(code=400, msg="企业编号传递错误。")

        # 判断大模块编号
        if not package_id:
            return create_response(code=400, msg="大模块编号传递错误。")

        # 拼写查询语句
        query_map_tenement_package_table_sql = """
            SELECT 
                tenement_id, 
                package_id
            FROM 
                db_saas_center.map_tenement_package_table 
            WHERE 
                tenement_id = {} 
            AND 
                package_id = {}
            ;""".format(tenement_id, package_id)

        # 获取数据集合
        query_map_tenement_package_table_data = db.findOne(query_map_tenement_package_table_sql)

        # 判断参数
        if db.findOne(query_map_tenement_package_table_sql):
            # 返回响应
            return create_response(code=400, msg="当前企业已开启对应的功能包，请勿重复添加。")

        # 拼接语句进行添加操作
        create_map_tenement_package_table_sql = """
            INSERT INTO 
                db_saas_center.map_tenement_package_table(
                    tenement_id, 
                    package_id
                )
            VALUES
                ({}, {})   
            ;""".format(tenement_id, package_id)

        # 执行对应的语句
        db.update(create_map_tenement_package_table_sql)

        # 获取查询出来的数据
        create_status = create_tenement_package_func(tenement_id, package_id)
        # 判断对应的响应
        if create_status['status'] == False:
            return create_response(code=500, msg=create_status['msg'])
        # 返回数据集合
        return create_response(code=200, msg="", data=query_map_tenement_package_table_data)
